"use client"; import { getCommissionApi, getRegisterCountApi, getTotalCountApi, getWithdrawalApi, } from "@/api/summary"; import { useUserInfoStore } from "@/stores/useUserInfoStore"; import { useRequest } from "ahooks"; import { Mask, Toast } from "antd-mobile"; import { useLocale, useTranslations } from "next-intl"; import { CashbackTypes, Rule } from "@/api/cashback"; import { CommissionModel } from "@/app/[locale]/affiliate/component/TabsCom"; import Table, { TableHeaderItem } from "@/components/Table"; import TipsModal, { ModalProps } from "@/components/TipsModal"; import { server } from "@/utils/client"; import { getToken } from "@/utils/Cookies"; import { copyText } from "@/utils/methods"; import Image from "next/image"; import { FC, useEffect, useRef, useState } from "react"; import "./page.scss"; interface Props {} const RulesClient = () => { const t = useTranslations("cashback"); const [rules, setRules] = useState([]); const [visible, setVisible] = useState(false); const columns: TableHeaderItem[] = [ { title:
Nivel Agente
, dataIndex: "level", align: "center", render: (item: Rule) => (
{item.level}
), }, { title:
Apostas Validas
, dataIndex: "aposta", align: "center", render: (item: Rule) => (
{item.aposta} Dez mil+
), }, { title:
Comissão
, dataIndex: "cashback", render: (item: Rule) => (
{item.cashback} /Dez mill
), }, ]; const loadMore = async () => { return Promise.resolve(); }; const getCashBackApi = async () => { return server .request({ url: "/v1/api/front/activity_cash", method: "post", }) .then((res) => { return res.data; }) .catch((error) => { return { rules: [], last_period: { end_time: 0, start_time: 0 }, next_period: { end_time: 0, start_time: 0, }, amount: 0, bet: 0, status: "expired", }; }); }; useEffect(() => { getCashBackApi().then((res) => { setRules(res.rules); }); }, []); return (

{" "} A apostas válidas depende dos diferentes jogos:
Os tipos de crash e os jogos virtuais não serão considerados apostas válidas{" "}
100% De aposta
Jogos : Live Casino, 3rd Party
100% De aposta
Jogos : Os outros jogos originais
setVisible(true)} className={ "mt-[0.1389rem] flex justify-between bg-[#25262b] p-[0.1042rem] text-[#98a7b5]" } > Regras de cálculo de comissão
  • As comissões podem ser retiradas em nossa carteira 8pg do painel a qualquer momento.
  • O sistema calcula a comissão a cada 24 horas.
  • Comissão máxima diária : 10000 BRL
  • A comissão não será creditada para o mesmo IP ou dispositivo, e a inflação intencional do volume de negócios não será creditada para a comissão.{" "}
); }; const App: FC = (props) => { const t = useTranslations("SummaryPage"); const locale = useLocale(); const sliderRef = useRef(null); const [num, setNum] = useState(100); const [money, setMoney] = useState("5000"); const [visible, setVisible] = useState(false); const todayModalRef = useRef(null); const totalModalRef = useRef(null); const { userInfo } = useUserInfoStore(); const token = getToken(); // 生成分享链接 const BASE_URL = process.env.NEXT_PUBLIC_SHARE_URL; const shareUrl = `${BASE_URL}/${locale}/${userInfo ? userInfo.referrer_code : "xxxxxx"}`; const url = encodeURIComponent(`${shareUrl}`); const SHARE_SOURCE = [ { icon: "/summary/Facebook.png", label: "Facebook", shareUrl: `https://www.facebook.com/sharer/sharer.php?u=${url}`, }, { icon: "/summary/WhatsApp.png", label: "WhatsApp", shareUrl: `https://api.whatsapp.com/send?text=${url}`, }, { icon: "/summary/Telegram.png", label: "Telegram", shareUrl: `https://t.me/share/url?url=${url}`, }, { icon: "/summary/Twitter.png", label: "Twitter", shareUrl: `https://twitter.com/intent/tweet?text=${url}`, }, { icon: "/summary/Email.png", label: "Email", shareUrl: `mailto: ?&subject=&cc=&bcc=&body=${url}`, }, ]; // 轮询时间 const TIME = 180000; const getUserMoneyHandler = () => { if (token) { return getRegisterCountApi().then((res) => { if (res.code === 200) return res.data; }); } return Promise.resolve({ commissar: 0, effective_amount: 0, recharge_user_count: 0, reg_count: 0, }); }; const { data: todayData } = useRequest(getUserMoneyHandler, { pollingInterval: TIME, pollingWhenHidden: true, pollingErrorRetryCount: 3, staleTime: 5000, refreshDeps: [token], }); const getTotalCount = () => { if (token) { return getTotalCountApi().then((res) => { if (res.code === 200) return res.data; }); } return Promise.resolve({ commissar: 0, effective_amount: 0, recharge_user_count: 0, reg_count: 0, }); }; const { data: totalData } = useRequest(getTotalCount, { pollingInterval: TIME, pollingWhenHidden: true, pollingErrorRetryCount: 3, staleTime: 5000, }); const getCommission = () => { if (token) { return getCommissionApi().then((res) => { if (res.code === 200) return res.data; }); } return Promise.resolve({ commissar: 0, level: 0, withdrawal_commissions: 0, enable_receive: false, min_value: 0, max_value: 0, }); }; const { data: commissionData, run: commissionRun } = useRequest(getCommission, { pollingInterval: TIME, pollingWhenHidden: true, pollingErrorRetryCount: 3, staleTime: 5000, }); const handleSlide: any = (e: React.MouseEvent) => { if (sliderRef.current) { const startX = sliderRef.current.getBoundingClientRect().x; const x = e.clientX - startX; const xRem = x / (144 * 0.6); const intNum = Math.round(10000 * xRem) - Math.round((10000 * xRem) % 10); setNum(intNum); const m = intNum * 50; let r = ""; const arr = m.toString().split(""); arr.forEach((item, i) => { if (i !== arr.length - 1 && (arr.length - i - 1) % 3 === 0) { r += item + ","; } else { r += item; } }); setMoney(r); const scale = (Math.round(xRem * 10000) / 100.0).toFixed(2) + "%"; sliderRef.current.style.width = scale; } }; const copy = (text: string) => { copyText(text); Toast.show({ icon: "success", content: t("copySuc"), maskClickable: false }); }; const withdrawalHandler = async () => { if (commissionData === undefined) return; if (!commissionData.enable_receive) { Toast.show(t("receive")); return; } const commissar = commissionData.commissar ?? 0; // 使用空值合并运算符处理可能的 undefined const minValue = Math.min(commissionData.min_value, 10); if (commissar > minValue) { const available = Math.min(commissionData.max_value, commissar); getWithdrawalApi({ amount: available }).then((res) => { if (res.code === 200) { setTimeout(commissionRun, 200); } }); return; } else { Toast.show(t("receive")); } }; return (
{t("Hoje")} todayModalRef.current?.onOpen()} />
  • {todayData?.reg_count}

    {t("Inscrições")}

  • {todayData?.recharge_user_count}

    {t("Novos")}

  • {t("R$")} {todayData?.effective_amount}

    {t("Aposta")}

  • {t("R$")} {todayData?.commissar}

    {t("Comissão")}

{t("Total")} totalModalRef.current?.onOpen()} />
  • {totalData?.reg_count}

    {t("Inscrições")}

  • {totalData?.recharge_user_count}

    {t("Jogadores")}

  • {t("R$")} {totalData?.effective_amount}

    {t("ApostaTotal")}

  • {t("R$")} {totalData?.commissar}

    RS {t("Comissão")}

{t("Comissão")} setVisible(true)} />
{/**/} {commissionData?.level}
{t("Nível")} setVisible(true)} >
  • {t("R$")} {commissionData?.withdrawal_commissions}

    {t("TotalPago")}

  • {t("R$")} {commissionData?.commissar}

    {t("Não")}

{t("TRANSFERIR")}
{t("Valor")}
{t("title1")}
{t("content1")}
{shareUrl} copy(shareUrl)}> {t("Cópia")}
{t("title2")}
{t("content2-1")}
{t("content2-2")} {t("business")}
{t("title3")} setVisible(true)} >
{t("content3")}
{t("number")} {num}
{t("Comissão")} > {t("R$")} {money} {t("money")}
{t("title4")}
  • {t("content4-1")} {t("red")}.
  • {t("content4-2")}
  • {t("todayDesc1")}
  • {t("todayDesc2")}
  • {t("todayDesc3")}

{t("modalTips")}

  • {t("totalDesc1")}
  • {t("totalDesc2")}
  • {t("totalDesc3")}

{t("modalTips")}

Regras de recompensas por comissão

setVisible(false)}>
); }; export default App;